code: private void retrieveColumnData(TableSchemaImpl tableData) throws Exception {
  		String logicalName = tableData.getLogicalName();
  		int groupId = tableData.getGroupId();
  
  		try {
  			
  			PreparedStatement ps = connection.prepareStatement(
  					"SELECT column_name,read,write,options " +
  					"FROM "+DB_NAME_COLUMNS+
  					" WHERE logical_name = ? AND group_id = ?");
  			ps.setString(1, logicalName);
  			ps.setInt(2, groupId);
  			if( ps.execute() ) {
  				ResultSet rs = ps.getResultSet();
  				while( rs.next() ) {
  					String columnName = rs.getString(1);
  					boolean read = rs.getBoolean(2);
  					boolean write = rs.getBoolean(3);
  					String options = rs.getString(4);
  
  					ColumnDataImpl columnDataImpl = tableData.createColumnDataFromName(columnName);
  					columnDataImpl.setReadable(read);
  					columnDataImpl.setWriteable(write);
  					ColumnOptionsParser.parseColumnOptions(options, columnDataImpl);
  				}
  			}
  			ps.close();
  		} catch (Exception e) {
  			throw new Exception("Error retrieving column data for: "+logicalName+"/"+groupId,e);
  		}
  	}
docs: For a table, retrieves access to columns specified in the security tables.
  This method uses the table 'dbsec_columns' to perform this work. The resulting information
  in the column data is incomplete: it lacks types and other elements.
  @param tableData Table to query
  @throws Exception