code: def GetValues(self, table_names, column_names, condition):
      
      if not self._connection:
        raise RuntimeError('Cannot retrieve values database not opened.')
  
      if condition:
        condition = ' WHERE {0:s}'.format(condition)
  
      sql_query = 'SELECT {1:s} FROM {0:s}{2:s}'.format(
          ', '.join(table_names), ', '.join(column_names), condition)
  
      self._cursor.execute(sql_query)
  
      # TODO: have a look at https://docs.python.org/2/library/
      # sqlite3.html#sqlite3.Row.
      for row in self._cursor:
        yield {
            column_name: row[column_index]
            for column_index, column_name in enumerate(column_names)}
docs: Retrieves values from a table.
  
      Args:
        table_names (list[str]): table names.
        column_names (list[str]): column names.
        condition (str): query condition such as
            "log_source == 'Application Error'".
  
      Yields:
        sqlite3.row: row.
  
      Raises:
        RuntimeError: if the database is not opened.