def get_fact_by_id(self, fact_id):
        """ Obtains fact data by it's id.

        As the fact is unique, it returns a tuple like:
        (activity_id, start_time, end_time, description).
        If there is no fact with id == fact_id, a NoHamsterData
        exception will be raise
        """

        columns = 'activity_id, start_time, end_time, description'

        query = "SELECT %s FROM facts WHERE id = %s"
        result = self._query(query % (columns, fact_id))

        if result:
            return result[0]  # there only one fact with the id
        else:
            raise NoHamsterData('facts', fact_id)