When user requested single column from the table we still calculating all of them. Calculation of some columns is quite expensive (need to do stat calls / read files etc). 
{
    while (next_row < rows)
    {
        StoragesInfo info;
        info.database = (*database_column)[next_row].get<String>();
        info.table = (*table_column)[next_row].get<String>();
        auto is_same_table = [&info, this] (size_t row) -> bool
        {
            return (*database_column)[row].get<String>() == info.database &&
                   (*table_column)[row].get<String>() == info.table;
        };
        
        
        
        for (; next_row < rows && is_same_table(next_row); ++next_row)
        {