public function getTag($principalId, ITag $tag)
 {
     $sqlQuery = 'SELECT ' . TagManager::KEY_TAGID . ', ' . TagManager::KEY_LABEL . ', ' . TagManager::KEY_COLOR . ' FROM ' . self::TAGS_TABLE_NAME . ' WHERE ' . TagManager::KEY_PRINCIPALID . ' = :' . TagManager::KEY_PRINCIPALID . ' AND ' . TagManager::KEY_LABEL . ' = :' . TagManager::KEY_LABEL;
     $data = array(TagManager::KEY_PRINCIPALID => $principalId, TagManager::KEY_LABEL => $tag->getLabel());
     try {
         $dbHandler = $this->getConnection();
         $stmt = $dbHandler->prepare($sqlQuery);
         $stmt->execute($data);
         $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
         $result = current($result);
         if ($result === false) {
             throw new EyeNoSuchTagException('Unknown tag "' . $tag . '".');
         }
         $tag->setId($result[TagManager::KEY_TAGID]);
         $tag->setColor($result[TagManager::KEY_COLOR]);
         return $tag;
     } catch (PDOException $e) {
         $this->destroyConnection();
         throw new EyeTagException('An error occured while retrieving tag "' . $tag . '" from the database.', 0, $e);
     }
     $this->destroyConnection();
 }