@Override
    public void close() throws SQLException {
        try {
            this.client.close();
        } catch (Exception e) {
            log.warn("Failed to close connection due to %s", e.getMessage());
            throw SqlExceptionUtils.handle(e);
        } finally {
            this.closed = true;
        }

        JdbcTransaction tx = txRef.get();
        if (tx != null) {
            try {
                tx.commit(log);
            } finally {
                if (!txRef.compareAndSet(tx, null)) {
                    log.warn("Transaction was set to %s unexpectedly", txRef.get());
                }
            }
        }
    }
Checks if a feature can be supported or not.

@param feature non-empty feature name
@param silent  whether to show warning in log or throw unsupported exception
@throws SQLException when the feature is not supported and silent is
                     {@code false}
clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/internal/ClickHouseConnectionImpl.java