If you saw him reading it, even once, you just say "Joe read this book." There is zero uncertainty and no logical deductions you have to make.
Joe was quoting passage from the book and was able to discuss all the characters at great length. Although I haven't seen him with the book in his hands, Joe must have read it. (I infer he read it as the only logical conclusion.)
This seems like the type of book Joe likes. He may/might have read it.
(I don't see any difference between may and might.)
Student or Learner