code: public synchronized InputStream getBinaryStream(long pos,
              long length) throws SQLException {
  
          if (!isInLimits(Long.MAX_VALUE, pos - 1, length)) {
              throw Util.outOfRangeArgument();
          }
  
          return new BlobInputStream(this, pos - 1, length,
                                     session.getStreamBlockSize());
      }
docs: Returns an <code>InputStream</code> object that contains a partial <code>Blob</code> value,
  starting  with the byte specified by pos, which is length bytes in length.
  
  @param pos the offset to the first byte of the partial value to be retrieved.
  The first byte in the <code>Blob</code> is at position 1
  @param length the length in bytes of the partial value to be retrieved
  @return <code>InputStream</code> through which the partial <code>Blob</code> value can be read.
  @throws SQLException if pos is less than 1 or if pos is greater than the number of bytes
  in the <code>Blob</code> or if pos + length is greater than the number of bytes
  in the <code>Blob</code>
  
  @exception SQLFeatureNotSupportedException if the JDBC driver does not support
  this method
  @since JDK 1.6, HSQLDB 1.9.0