public static DataContainer readTableDescriptions() throws IOException {
        DataContainer allData = new DataContainer();

        File fileDir = new File(backupFilePath);
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));


        Map<String, Row> rowsForCurrentTable = null;
        TableDescription currentTableDescription = null;
        String str;
        while ((str = in.readLine()) != null) {
            if ("".equals(str)) {
                continue;
            }

            if (str.startsWith("table: ")) {
                String tableName = str.substring(7);
                String descriptionAsStr = in.readLine();
                List<String> descriptions = getColumnNames(descriptionAsStr);
                currentTableDescription = new TableDescription(tableName, descriptions);
                rowsForCurrentTable = new HashMap<String, Row>();
            } else if ("table end".equals(str)) {
                allData.put(currentTableDescription, rowsForCurrentTable);
                rowsForCurrentTable = new HashMap<String, Row>();
                currentTableDescription = null;
            } else {
                String[] rowAsStrMassive = str.split(";");
                String key = rowAsStrMassive[0];
                List<String> row = Arrays.asList(rowAsStrMassive);
                rowsForCurrentTable.put(key, new Row(row));
            }
        }


        in.close();
        return allData;
    }