The generic observer delete was broken for GRDB, because we can't fetch the uniqueId's of rowIds if the corresponding row was deleted. So instead, we split the logic: Yap uses uniqueIds, GRDB uses row ids.