a SELECT or set-returning version of MERGE/UPSERT?
If you want to find the results of the "UPSERT" without actually performing it, you can run a query with FULL JOIN:

SELECT 
    did,
    COALESCE(s.dname, t.dname) AS dname   -- in case of conflict, 
                                          -- give precedence to source table
FROM 
    distributors AS t
    FULL JOIN distributors_upd AS s
    USING (did) ;


Test at dbfiddle.uk (thnx to McNets for setting it up)

The columns that would be updated on the conflict by the merge will have the source column first in the COALESCE() function and the target column second. If the update is more complex, you'll have to use a more complex COALESCE() or CASE expression. Example:

ON CONFLICT UPDATE 
    SET counter = counter + EXCLUDED.counter


will become

SELECT
    COALESCE(t.counter + s.counter, t.counter, s.counter) AS counter