async def METHOD_NAME(self, name: str, cached: bool = True) -> str:
    """ Get a property from Nominatim's property table.
        Property values are normally cached so that they are only
        retrieved from the database when they are queried for the
        first time with this function. Set 'cached' to False to force
        reading the property from the database.
        Raises a ValueError if the property does not exist.
    """
    lookup_name = f'DBPROP:{name}'
    if cached and lookup_name in self._property_cache:
        return cast(str, self._property_cache[lookup_name])
    sql = sa.select(self.t.properties.c.value)\
        .where(self.t.properties.c.property == name)
    value = await self.connection.scalar(sql)
    if value is None:
        raise ValueError(f"Property '{name}' not found in database.")
    self._property_cache[lookup_name] = cast(str, value)
    return cast(str, value)