Australia are embarking on their first Test tour of Sri Lanka in five years, as part of a two-month series that also involves five one-day internationals and two Twenty20s.
Henriques was an unexpected choice, returning for the first time since 2013 with pacemen Pattinson and Peter Siddle both ruled out with back injuries.
Nathan Coulter-Nile was also included in the 15-man squad for the July-August Test series, along with O'Keefe who was picked for last summer's final Test against the West Indies but overlooked for their two-match tour to New Zealand on green, seaming pitches.
"This squad has proven experience in sub-continental conditions," said national selector Rod Marsh.
Also Read
"Henriques comes into the squad to give the flexibility of an additional all-rounder option, having already shown he plays and adapts well to spin-friendly conditions.
"He has been working hard with his fitness and we believe he is in prime condition to serve us well should he be selected to play.
"Jackson Bird and Nathan Coulter-Nile join the squad and will give us good control and pace."
He added that O'Keefe would complement Nathan Lyon well, if selected in the final XI.
But Pattinson's omission is a setback, failing to recover from the back problem he picked up on the New Zealand tour.
"Unfortunately his back pain continued... And after further investigation it confirmed that he has had a recurrence of a back stress fracture," said Cricket Australia physiotherapist David Beakley.
"James will continue to spend the winter recovering from this injury, at which point we hope to have a clearer view of timelines for his return to play."
Australia: Steve Smith (capt), David Warner, Jackson Bird, Joe Burns, Nathan Coulter-Nile, Josh Hazlewood, Moises Henriques, Usman Khawaja, Nathan Lyon, Mitchell Marsh, Shaun Marsh, Peter Nevill, Stephen O'Keefe, Mitchell Starc, Adam Voges.