Yes, JupyterHub uses sqlalchemy, which means you can use several database backends, sqlite is only the default because it’s always available and requires no setup. postgres and mysql are fully tested and well supported, but other backends may work as well.
For example, to use mysql with pymysql:
c.JupyterHub.db_url = "mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]"
password can also be specified via $MYSQL_PWD env.