To my Orthodox Jewish friends, the stories of Genesis, written in Hebrew, these stories aren't meant to be taken literally, they are teaching stories, like Aesop's Fables or Jesus' parables. In modern terms they would be called isomorphic metaphors. For thousands of years Judaism regarded these stories, in the Old Testament, the book of the Jews, not as history but as teaching stories. But sometime in the 17th century some "Christians" that didn't speak or understand Hebrew decided that the Old Testament, not the book of the Christians, that the Old Testament is to be taken literally. Cain never had a wife because Cain, Adam, Eve didn't exist. If you think Genesis is just a story about a guy and a girl and a snake in a tree, then you are missing the point. The central theme of the story is guilt and shame and the psychology you can learn is brilliant.
A guy, a girl and a snake in a tree? Makes it sound like a cheap smut book. Guilt and shame? A Catholic best-seller.
Add God to the mix and we will be in total agreement, Cain never had a wife because Cain, Adam, Eve didn´t exist because God doesn´t exist.
From Law and Order: DA: He feels guilty about something. Detective: Maybe he's Catholic, he feels guilty about everything.
People during those times live up to hundred years old, Cain might have met few of his niece and rape her. Bible sometimes don't mention things that aren't useful for salvation.