default <R> Promise<Optional<R>> queryAsync(@Language("MySQL") @Nonnull String query, @Nonnull SqlFunction<ResultSet, R> handler) {
        return Schedulers.async().supply(() -> this.query(query, handler));
    }
Executes a database query with no preparation.

<p>This will be executed on an asynchronous thread.</p>

<p>In the case of a {@link SQLException} or in the case of
no data being returned, or the handler evaluating to null,
this method will return an {@link Optional#empty()} object.</p>

@param query the query to be executed
@param handler the handler for the data returned by the query
@param <R> the returned type
@return a Promise of an asynchronous database query
@see #query(String, SqlFunction) to perform this query synchronously
helper-sql/src/main/java/me/lucko/helper/sql/Sql.java