The co.cask.cdap.api.dataset.table.Table class in CDAP has discrepancy between the HBase version and the LevelDB/In-Memory version.
does not document what the behavior is in two scenarios:
1) columns is null
2) columns is empty byte array
For the first case, the actual implementation is consistent across; it will retrieve all columns.
In the second case, however, In-memory and LevelDB implementations return zero columns, but HBase implementation returns all columns.
The behavior when columns is empty byte array needs to be decided and made consistent across the implementations.
This will have to result in backwards incompatibility in CDAP as well as in user applications that use Table.