public function getPropertyValues( core_kernel_classes_Resource $resource,  core_kernel_classes_Property $property, $options = array())
    {
        $returnValue = array();

        
        $one = isset($options['one']) && $options['one'] == true ? true : false;
        if (isset($options['last'])) {
            throw new core_kernel_persistence_Exception('Option \'last\' no longer supported');
        }
		$platform = $this->getPersistence()->getPlatForm();
		
    	// Define language if required
		$lang = '';
		$defaultLg = '';
		if (isset($options['lg'])) {
			$lang = $options['lg'];
		} else {
            $lang = $this->getServiceLocator()->get(SessionService::SERVICE_ID)->getCurrentSession()->getDataLanguage();
            $default = $this->getServiceLocator()->get(UserLanguageServiceInterface::SERVICE_ID)->getDefaultLanguage();
            $defaultLg = ' OR l_language = ' . $this->getPersistence()->quote($default);
		}
		
        $query =  'SELECT object, l_language
        			FROM statements 
		    		WHERE subject = ? 
		    		AND predicate = ?
					AND (l_language = ? OR l_language = ' . $this->getPersistence()->quote('') . $defaultLg . ')
		    		AND '.$this->getModelReadSqlCondition();
        
    	
		if ($one) {
            // Select first
			$query .= ' ORDER BY id DESC';
			$query = $platform->limitStatement($query, 1, 0);
			$result = $this->getPersistence()->query($query,array($resource->getUri(), $property->getUri(), $lang));
		} else {
            // Select All
			$result = $this->getPersistence()->query($query,array($resource->getUri(), $property->getUri(), $lang));
		}
        
		// Treat the query result
        if ($result == true) {
        	if (isset($options['lg'])) {
                // If a language has been defined, do not filter result by language
		    	while ($row = $result->fetch()) {
					$returnValue[] = $this->getPersistence()->getPlatForm()->getPhpTextValue($row['object']);
				}
        	} else {
                // Filter result by language and return one set of values (User language in top priority, default language in second and the fallback language (null) in third)
                $returnValue = core_kernel_persistence_smoothsql_Utils::filterByLanguage($this->getPersistence(), $result->fetchAll(), 'l_language', $lang, $default);
        	}
        }
        
        return (array) $returnValue;
    }