toReadableStream (streamOptions = {}) {
    this.stream = true
    this.pause()
    const readableStream = new Readable({
      ...streamOptions,
      objectMode: true,
      read: (/* size */) => {
        this.resume()
      }
    })
    this.on('row', (row) => {
      if (!readableStream.push(row)) {
        this.pause()
      }
    })
    this.on('error', (error) => {
      readableStream.emit('error', error)
    })
    this.on('done', () => {
      readableStream.push(null)
    })
    return readableStream
  }
Wrap original request in a Readable stream that supports back pressure and return.
It also sets request to `stream` mode and pulls all rows from all recordsets to a given stream.

@param {Object} streamOptions - optional options to configure the readable stream with like highWaterMark
@return {Stream}