private static NSArray _rawRowsForSQLExpression(EODatabaseContext dbc, EOSQLExpression expression, NSArray<EOAttribute> attributes) {
NSMutableArray results = null;
EOAdaptorChannel channel = dbc.availableChannel().adaptorChannel();
if (!channel.isOpen())
channel.openChannel();
// If channel.evaluateExpression throws when committing, it won't close the JDBC transaction
// Probably a bug in JDBCChannel, but we must take care of it
boolean contextHadOpenTransaction = channel.adaptorContext().hasOpenTransaction();
try {
channel.evaluateExpression(expression);