code: public InputStream getBinaryStream(final int columnIndex) throws SQLException {
          if(protocol.supportsPBMS()) {
              try {
                  return getValueObject(columnIndex).getPBMSStream(protocol);
              } catch (QueryException e) {
                  throw SQLExceptionMapper.get(e);
              } catch (IOException e) {
                  throw SQLExceptionMapper.getSQLException("Could not read back the data using http", e);
              }
          }
          return getValueObject(columnIndex).getBinaryInputStream();
  
      }
docs: Retrieves the value of the designated column in the current row of this <code>ResultSet</code> object as a stream
  of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly
  suitable for retrieving large <code>LONGVARBINARY</code> values.
  <p/>
  <P><B>Note:</B> All the data in the returned stream must be read prior to getting the value of any other column.
  The next call to a getter method implicitly closes the stream.  Also, a stream may return <code>0</code> when the
  method <code>InputStream.available</code> is called whether there is data available or not.
  
  @param columnIndex the first column is 1, the second is 2, ...
  @return a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the
  value is SQL <code>NULL</code>, the value returned is <code>null</code>
  @throws java.sql.SQLException if the columnIndex is not valid; if a database access error occurs or this method
  is called on a closed result set