async runQuery(query) {
    if (!this.client) {
      throw new Error('Must be connected');
    }

    // Check to see if a custom maxrows is set, otherwise use default
    const maxRows = resolvePositiveNumber(
      this.connection.maxrows_override,
      this.connection.maxRows
    );
    const maxRowsPlusOne = maxRows + 1;
    const limitedQuery = sqlLimiter.limit(
      query,
      ['limit', 'fetch'],
      maxRowsPlusOne
    );

    return new Promise((resolve, reject) => {
      // TODO - use fields from driver to return columns
      // eslint-disable-next-line no-unused-vars
      return this.client.query(limitedQuery, (error, rows, fields) => {
        if (error) {
          return reject(error);
        }
        if (rows.length >= maxRowsPlusOne) {
          return resolve({ rows: rows.slice(0, maxRows), incomplete: true });
        }
        return resolve({ rows, incomplete: false });
      });
    });
  }
Run query using underlying connection
@param {string} query