code: public Blob getBlob(int columnIndex) throws SQLException {
  
          Object o = getObject(columnIndex);
  
          if (o == null) {
              return null;
          }
  
          if (o instanceof BlobDataID) {
              return new JDBCBlobClient(session, (BlobDataID) o);
          } else if (o instanceof Blob) {
              return (Blob) o;
          } else if (o instanceof BinaryData) {
              byte[] b = getBytes(columnIndex);
  
              return new JDBCBlob(b);
          }
  
          throw Util.sqlException(ErrorCode.X_42561);
      }
docs: <!-- start generic documentation -->
  Retrieves the value of the designated column in the current row
  of this <code>ResultSet</code> object as a <code>Blob</code> object
  in the Java programming language.
  <!-- end generic documentation -->
  
  <!-- start release-specific documentation -->
  <div class="ReleaseSpecificDocumentation">
  <h3>HSQLDB-Specific Information:</h3> <p>
  
  HSQLDB 1.9.0 supports this feature for objects of type BLOB and BINARY.
  The Blob returned for BINARY objects is a memory object. The Blob
  return for BLOB objects is not held entirely in memory. Its contents are
  fetched from the database when its getXXX() methods are called. <p>
  </div>
  <!-- end release-specific documentation -->
  
  @param columnIndex the first column is 1, the second is 2, ...
  @return a <code>Blob</code> object representing the SQL
  <code>BLOB</code> value in the specified column
  @exception SQLException if a database access error occurs
  or this method is called on a closed result set
  @exception SQLFeatureNotSupportedException if the JDBC driver does not support
  this method
  @since JDK 1.2