docs: private ResultSet execute(String sql) throws SQLException {
  
          // NOTE:
          // Need to create a JDBCStatement here so JDBCResultSet can return
          // its Statement object on call to getStatement().
          // The native JDBCConnection.execute() method does not
          // automatically assign a Statement object for the ResultSet, but
          // JDBCStatement does.  That is, without this, there is no way for the
          // JDBCResultSet to find its way back to its Connection (or Statement)
          // Also, cannot use single, shared JDBCStatement object, as each
          // fetchResult() closes any old JDBCResultSet before fetching the
          // next, causing the JDBCResultSet's Result object to be nullified
          final int scroll = JDBCResultSet.TYPE_SCROLL_INSENSITIVE;
          final int concur = JDBCResultSet.CONCUR_READ_ONLY;
          ResultSet r = connection.createStatement(scroll,
              concur).executeQuery(sql);
  
          ((JDBCResultSet) r).autoClose = true;
  
          return r;
      }