throws SearchException, SQLException, DataSetException
{
logger.debug("getDataset(connection={}, rootTables={}) - start", connection, rootTables);
ImportedKeysSearchCallbackFilteredByPKs callback = new ImportedKeysSearchCallbackFilteredByPKs(connection, rootTables);
ITableFilter filter = callback.getFilter();
DepthFirstSearch search = new DepthFirstSearch();
String[] tableNames = rootTables.getTableNames();
ListOrderedSet tmpTables = search.search( tableNames, callback );
String[] dependentTables = CollectionsHelper.setToStrings( tmpTables );
IDataSet tmpDataset = connection.createDataSet( dependentTables );