docs: public InputStream getBinaryStream(long pos,
                                         long length) throws SQLException {
  
          final byte[] ldata = data;
  
          checkValid(ldata);
  
          final int dlen = ldata.length;
  
          if (pos < MIN_POS || pos > dlen) {
              throw Util.outOfRangeArgument("pos: " + pos);
          }
  
          pos--;
  
          if (length < 0 || length > dlen - pos) {
              throw Util.outOfRangeArgument("length: " + length);
          }
  
          if (pos == 0 && length == dlen) {
              return new ByteArrayInputStream(ldata);
          }
  
          // Let client decide on policy.
          //
          // Zero-copy is (possibly much) faster because it does
          // not allocate extra memory and does not involve copy
          // processing.
          //
          // However, because it could lead to unexpected memory,
          // stress, it is not polite to always pass back a stream
          // whose buffer is the full size required to represent the
          // underlying BLOB value.
  //        if (isGetBinaryStreamUsesCopy()) {
          final byte[] out = new byte[(int) length];
  
          System.arraycopy(ldata, (int) pos, out, 0, (int) length);
  
          return new ByteArrayInputStream(out);
  
  //        } else {
  //            return new BinaryInputStream(ldata, pos, length);
  //        }
      }