The classic first order predicate logic is based on bivalent logic (a bivalent, or Boolean, logic has exactly two truth values: TRUE and FALSE, as noted in the previous topic. Higher-valued logics have three or more truth values. For example, SQL uses a 3VL having the following three truth values: TRUE, FALSE, and UNKNOWN).
The logic supporting SQL is bivalent (2VL) with ad hoc support for nulls. The inconsistent treatment of missing values in SQL is common to all vendors—not an implementation problem but a problem with the way SQL is defined.